///******************************************************************************* // * Copyright (c) 2005, 2006 IBM Corporation and others. // * All rights reserved. This program and the accompanying materials // * are made available under the terms of the Eclipse Public License v1.0 // * which accompanies this distribution, and is available at // * http://www.eclipse.org/legal/epl-v10.html // * // * Contributors: // * IBM Corporation - initial API and implementation // *******************************************************************************/ //package org.eclipse.ui.tests.keys; // //import org.eclipse.core.commands.ParameterizedCommand; //import org.eclipse.jface.bindings.Binding; //import org.eclipse.jface.bindings.keys.KeySequence; //import org.eclipse.jface.bindings.keys.ParseException; //import org.eclipse.jface.preference.IPreferenceStore; //import org.eclipse.ui.commands.ICommandService; //import org.eclipse.ui.internal.WorkbenchPlugin; //import org.eclipse.ui.keys.IBindingService; //import org.eclipse.ui.tests.harness.util.UITestCase; // ///** // * Test cases covering the various interaction between bindings. Bindings that // * have been removed. Bindings that have been added. Inheritance of various // * properties. // * // * @since 3.1 // */ //public final class BindingPersistenceTest extends UITestCase { // // /** // * Constructor for <code>BindingPersistenceTest</code>. // * // * @param name // * The name of the test // */ // public BindingPersistenceTest(final String name) { // super(name); // } // // /** // * <p> // * Tests whether the preference store will be read automatically when a // * change to the preference store is made. // * </p> // * // * @throws ParseException // * If "ALT+SHIFT+Q A" cannot be parsed by KeySequence. // */ // public final void testAutoLoad() throws ParseException { // // Get the services. // ICommandService commandService = (ICommandService) fWorkbench // .getAdapter(ICommandService.class); // IBindingService bindingService = (IBindingService) fWorkbench // .getAdapter(IBindingService.class); // bindingService.readRegistryAndPreferences(commandService); // // // Check the pre-conditions. // final String emacsSchemeId = "org.eclipse.ui.emacsAcceleratorConfiguration"; // assertFalse("The active scheme should be Emacs yet", emacsSchemeId // .equals(bindingService.getActiveScheme().getId())); // final KeySequence formalKeySequence = KeySequence // .getInstance("ALT+SHIFT+Q A"); // final String commandId = "org.eclipse.ui.views.showView"; // Binding[] bindings = bindingService.getBindings(); // int i; // for (i = 0; i < bindings.length; i++) { // final Binding binding = bindings[i]; // if ((binding.getType() == Binding.USER) // && (formalKeySequence.equals(binding.getTriggerSequence()))) { // final ParameterizedCommand command = binding // .getParameterizedCommand(); // final String actualCommandId = (command == null) ? null // : command.getCommand().getId(); // assertFalse("The command should not yet be bound", commandId // .equals(actualCommandId)); // break; // } // } // assertEquals("There shouldn't be a matching command yet", // bindings.length, i); // // // Modify the preference store. // final IPreferenceStore store = WorkbenchPlugin.getDefault() // .getPreferenceStore(); // store // .setValue( // "org.eclipse.ui.commands", // "<?xml version=\"1.0\" encoding=\"UTF-8\"?><org.eclipse.ui.commands><activeKeyConfiguration keyConfigurationId=\"" // + emacsSchemeId // + "\"/><keyBinding commandId=\"" // + commandId // + "\" contextId=\"org.eclipse.ui.contexts.window\" keyConfigurationId=\"org.eclipse.ui.defaultAcceleratorConfiguration\" keySequence=\"" // + formalKeySequence // + "\"/></org.eclipse.ui.commands>"); // // // Check that the values have changed. // assertEquals("The active scheme should now be Emacs", emacsSchemeId, // bindingService.getActiveScheme().getId()); // bindings = bindingService.getBindings(); // for (i = 0; i < bindings.length; i++) { // final Binding binding = bindings[i]; // if ((binding.getType() == Binding.USER) // && (formalKeySequence.equals(binding.getTriggerSequence()))) { // final ParameterizedCommand command = binding // .getParameterizedCommand(); // final String actualCommandId = (command == null) ? null // : command.getCommand().getId(); // assertEquals("The command should be bound to 'ALT+SHIFT+Q A'", // commandId, actualCommandId); // break; // } // } // assertFalse("There should be a matching command now", // (bindings.length == i)); // } //}